| 名称 | 类型 | 描述 |
|---|---|---|
| startAudioMixing | (id: number, filePath: string, options: MixOption) => Promise<void> |
开启混音 |
| stopAudioMixing | (id: number) => void |
停止播放音频文件 |
| pauseAudioMixing | (id: number) => void |
暂停播放音频文件 |
| resumeAudioMixing | (id: number) => void |
恢复播放音频文件 |
| preloadAudioMixing | (id: number, filePath: string) => Promise<void> |
预加载指定音频文件到内存中 |
| unloadAudioMixing | (id: number) => void |
卸载指定音频文件 |
| setAudioMixingVolume | (id: number, volume: number) => void |
调节混音的音量大小,包括音频文件混音和 PCM 混音。 |
| getAudioMixingVolume | (id: number) => number |
获取音频文件的音量 |
| getAudioMixingDuration | (id: number) => number |
获取音频文件时长 |
| getAudioMixingCurrentPosition | (id: number) => number |
获取音频文件播放进度 |
| setAudioMixingPosition | (id: number, position: number) => void |
设置音频文件的起始播放位置 |
| enableAudioMixingBuffer | (type: AudioMixingType) => void |
启动 PCM 音频数据混音 |
| disableAudioMixingBuffer | () => void |
关闭 PCM 混音 |
| pushAudioMixingBuffer | (buffer: AudioBuffer) => void |
推送 PCM 音频数据用于混音 |
开启混音
(id: number, filePath: string, options: MixOption) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID 混音 ID 用于标识混音,请保证混音 ID 唯一性。 如果已经通过 PreloadAudioMixing 加载音效,确保此处的 ID 与上次调用 PreloadAudioMixing 设置的 ID 相同。如果使用相同的 ID 重复调用本方法,前一次混音会停止,后一次混音开始 |
|
| filePath | string |
是 | 指定需要混音的音频文件的绝对路径,支持音频文件格式有: mp3,aac等 | |
| options | MixOption |
是 | 混音配置 可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端 |
返回值
类型: Promise<void>
注意
停止播放音频文件
(id: number) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID |
注意
暂停播放音频文件
(id: number) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID |
注意
恢复播放音频文件
(id: number) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID |
注意
调用 pauseAudioMixing#pauseAudioMixing 方法暂停播放音频文件后,可以通过调用本方法恢复播放及混音。
预加载指定音频文件到内存中
(id: number, filePath: string) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID。用于标识混音,请保证混音 ID 唯一性。 如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。 如果先调用 startAudioMixing#startAudioMixing,再使用相同的 ID 调用本方法 ,会上一个混音停止,然后加载后一个混音。 使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing#startAudioMixing 播放 B.mp3,请先调用 unloadAudioMixing#unloadAudioMixing 卸载 A.mp3 ,否则会报错 AUDIO_MIXING_ERROR_LOAD_CONFLICT。 |
|
| filePath | string |
是 | 用于混音文件路径。可以是本地文件的绝对路径,支持音频文件格式有: mp3,aac等 |
返回值
类型: Promise<void>
注意
卸载指定音频文件
(id: number) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID |
调节混音的音量大小,包括音频文件混音和 PCM 混音。
(id: number, volume: number) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID | |
| volume | number |
是 | 混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。 + 0:静音 + 100:原始音量(默认值) + 400: 最大可调音量 (自带溢出保护) |
获取音频文件的音量
(id: number) => number
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID |
返回值
类型: number
0: 获取失败>0: 成功,音量值
获取音频文件时长
(id: number) => number
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID |
返回值
类型: number
0: 成功, 音频文件时长,单位为毫秒。
注意
调用本方法获取音频文件时长前,需要先调用 preloadAudioMixing#preloadAudioMixing 或 startAudioMixing#startAudioMixing。
获取音频文件播放进度
(id: number) => number
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID |
返回值
类型: number
0: 成功, 音频文件播放进度,单位为毫秒。
注意
调用本方法获取音频文件播放进度前,需要先调用 startAudioMixing#startAudioMixing 开始播放音频文件。
设置音频文件的起始播放位置
(id: number, position: number) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| id | number |
是 | 混音 ID | |
| position | number |
是 | 音频文件起始播放位置,单位为毫秒。 你可以通过 getAudioMixingDuration#getAudioMixingDuration 获取音频文件总时长,position 的值不得大于音频文件总时长。 |
注意
启动 PCM 音频数据混音
(type: AudioMixingType) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| type | AudioMixingType |
是 | 混音类型。是否本地播放、以及是否发送到远端 |
注意
关闭 PCM 混音
() => void
推送 PCM 音频数据用于混音
(buffer: AudioBuffer) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| buffer | AudioBuffer |
是 | 音频缓冲池,详见浏览器文档 |
注意
调用该方法前,须通过 enableAudioMixingFrame#enableAudioMixingFrame 启动外部音频流混音。
| 名称 | 类型 | 描述 |
|---|---|---|
| joinRoom | (token: string \| null, roomId: string, userInfo: UserInfo, roomConfig: RoomConfig) => Promise<void> |
加入房间。 调用此方法加入房间,同房间内其他用户进行音视频通话。 |
| leaveRoom | () => void |
离开房间。 用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。 |
| destroy | () => void |
销毁 createEngine 所创建引擎实例,并释放所有相关资源。 |
| publish | () => Promise<void> |
在当前所在房间内手动开始发布本地音视频流 |
| unpublish | () => Promise<void> |
在当前所在房间内停止发布本地音视频流。 |
| subscribeUserStream | (userId: string, mediaType: SubscribeMediaType, streamType?: StreamIndex, configure?: SubscribeVideoConfig) => Promise<void> |
订阅房间内指定的远端音视频流。 无论自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。 该方法也可用于更新已经订阅的流的属性、媒体类型等配置。 |
| unSubscribe | (userId: string, isScreen: boolean) => Promise<void> |
停止订阅指定的房间内远端音视频流。 无论自动订阅还是手动订阅模式,你都可以调用此方法取消已订阅的音视频流。 |
| updateToken | (token: string) => void |
更新 Token。 用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。 |
| switchMicrophone | (deviceId: string) => Promise<void> |
切换内部采集时使用的麦克风 |
| switchCamera | (deviceId: string) => Promise<void> |
切换内部采集时使用的摄像头 默认摄像头由浏览器指定。 |
| startVideoCapture | (deviceId?: string) => Promise<void> |
立即开启内部视频采集。默认为关闭状态。 内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 发布流后调用该方法,房间中的其他用户会收到 [EngineEventsTypes.onUserStartVideoCapture] 的回调。 |
| stopVideoCapture | () => Promise<void> |
关闭内部视频采集。默认为关闭状态。 内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。 发布流后调用该方法,房间中的其他用户会收到 [EngineEventsTypes.onUserStopVideoCapture] 的回调。 |
| startAudioCapture | (deviceId?: string) => Promise<void> |
立即开启内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 发布流后调用该方法,房间中的其他用户会收到 [EngineEventsTypes.onUserStartAudioCapture] 的回调。 |
| stopAudioCapture | () => Promise<void> |
立即关闭内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 调用该方法,本地用户会收到 [EngineEventsTypes.onUserStopAudioCapture] 的回调。 |
| startScreenCapture | (screenConfig?: ScreenConfig) => Promise<void> |
使用内部采集模块,采集当前屏幕视频流,用于共享。 |
| stopScreenCapture | () => Promise<void> |
停止屏幕共享流内部采集。 |
| publishScreen | () => Promise<void> |
发布本地屏幕共享流。 |
| unpublishScreen | () => Promise<void> |
停止发布本地屏幕共享流。 |
| setLocalVideoPlayer | (streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => void |
设置本地视频渲染时,使用的视图,并设置渲染模式。 调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。你可以通过再次调用本方法,并绑定空视图来解除绑定。 |
| setRemoteVideoPlayer | (streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => void |
设置远端视频渲染时,使用的视图,并设置渲染模式。 建议在收到 onVideoFirstFrameRendered 事件后,调用本方法对远端视频视图进行设置。你可以通过再次调用本方法,并绑定空视图来解除绑定。 |
| setLocalVideoMirrorType | (mirrorType: MirrorType) => void |
是否开启本地视频流镜像模式。 |
| setAudioPlaybackDevice | (deviceId: string) => Promise<void> |
设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。 |
| play | (userId: string) => Promise<void> |
手动开启音视频流播放 进房时未开启自动播放或自动播放失败时,可以调用本方法手动开启音视频流播放。 |
| muteLocalAudio | (muteState: MuteState) => Promise<boolean> |
控制本地音频流的发送状态:发送/不发送。 非隐身用户使用此方法后,房间中的其他用户会收到回调 [EngineEventsTypes.onUserMuteAudio]。 |
| muteLocalVideo | (muteState: MuteState) => Promise<boolean> |
控制本地视频流的发送状态:发送/不发送。 无论你使用内部视频采集,还是自定义视频采集,你都应使用此接口启动发送本地视频流。 非隐身用户使用此方法后,房间中的其他用户会收到回调 [EngineEventsTypes.onUserMuteAudio]。 |
| pauseAllSubscribedStream | (mediaType: PauseResumeControlMediaType) => Promise<void> |
暂停接收来自远端的媒体流。 |
| resumeAllSubscribedStream | (mediaType: PauseResumeControlMediaType) => Promise<void> |
恢复接收来自远端的媒体流 |
| sendUserMessage | (userId: string, message: string) => Promise<unknown> \| undefined |
给房间内指定的用户发送点对点文本消息。 若消息发送成功,则 userId 所指定的用户会收到 [EngineEventsTypes.onUserMessageReceived] 回调。 |
| sendUserBinaryMessage | (userId: string, message: ArrayBuffer) => Promise<unknown> |
给房间内指定的用户发送点对点二进制消息。 若消息发送成功,则 userId 所指定的用户会收到 [EngineEventsTypes.onUserBinaryMessageReceived] 回调。 |
| sendRoomMessage | (message: string) => Promise<any> \| undefined |
给房间内的所有其他用户群发文本消息。 若消息发送成功,同一房间内的其他用户会收到 [EngineEventsTypes.onRoomMessageReceived] 回调。 |
| sendRoomBinaryMessage | (message: ArrayBuffer) => Promise<any> \| undefined |
给房间内的所有其他用户群发二进制消息。 若消息发送成功,同一房间内的其他用户会收到通过 [EngineEventsTypes.onRoomBinaryMessageReceived] 回调发送的消息 |
| sendSEIMessage | (streamIndex: StreamIndex, message: Uint8Array \| string, repeatCount: number) => void |
在视频通信时,通过视频帧发送 SEI 数据。 |
| setVideoEncoderConfig | (streamIndex: StreamIndex, descriptions: VideoStreamDescription[]) => Promise<void> |
启动推送多路视频流,设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。 |
| setAudioVolumeIndicationInterval | (interval?: number) => void |
开启/关闭音量提示。默认关闭。 开启音量提示后,将按设置的时间间隔,收到本地采集音量或订阅的远端用户的音量信息回调。 关于回调的具体信息,参看 [EngineEventsTypes.onAudioVolumeIndication]。 |
| startLiveTranscoding | (transcode: LiveTranscodeConfig) => Promise<void> |
开启转推直播,并设置合流的视频视图布局和音频属性。 |
| updateLiveTranscoding | (transcode: Partial<LiveTranscodeConfig>) => Promise<void> |
更新转推直播参数。 使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。 |
| stopLiveTranscoding | () => Promise<void> |
停止转推直播。 关于启动转推直播,参看 startLiveTranscoding。 |
| setBusinessId | (businessId: string) => void |
设置业务标识参数 可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。 |
| setUserVisibility | (enable: boolean) => Promise<void> |
设置用户可见性。默认可见。 |
| setExternalVideoTrack | (index: StreamIndex, track: MediaStreamTrack) => Promise<void> |
使用用户自定义的 videoTrack 请确保在你调用本方法前已调用 setVideoSourceType 设置为自定义视频采集。 |
| setExternalAudioTrack | (index: StreamIndex, track: MediaStreamTrack) => Promise<void> |
使用用户自定义的 audioTrack 使用自定义的 audioTrack 之后, 再开启摄像头,或者切换摄像头时。SDK 会采集新的视频流替换自定义的 audioTrack |
| setVideoSourceType | (index: StreamIndex, videoSourceType: VideoSourceType) => Promise<void> |
设置向 SDK 输入的视频源 默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。 该方法进房前后均可调用。 当你已调用 startVideoCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。 当你调用此方法开启自定义采集后,想要切换至内部采集,你必须先调用此方法关闭自定义采集,然后调用 startVideoCapture 手动开启内部采集 |
| setAudioSourceType | (index: StreamIndex, audioSourceType: AudioSourceType) => Promise<void> |
设置向 SDK 输入的音频源 默认使用内部采集。内部采集指:使用 RTC SDK 内置的音频采集机制进行音频采集。 该方法进房前后均可调用。 当你已调用 startAudioCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。 当你调用此方法开启自定义采集后,想要切换至内部采集,你必须先调用此方法关闭自定义采集,然后调用 startAudioCapture 手动开启内部采集 |
| getAudioMixingManager | () => IAudioMixingManager |
混音管理接口创建 |
| setAudioCaptureConfig | (config: TrackCaptureConfig) => Promise<void> |
设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。 |
| setVideoCaptureConfig | (config: TrackCaptureConfig) => Promise<void> |
设置 RTC SDK 内部采集时的视频采集参数。默认参数由浏览器决定。 |
加入房间。
调用此方法加入房间,同房间内其他用户进行音视频通话。
(token: string | null, roomId: string, userInfo: UserInfo, roomConfig: RoomConfig) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| token | string |
是 | 动态密钥,用于对进房用户进行鉴权验证。 进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。 使用不同 AppID 的 App 是不能互通的。 请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。 |
|
| roomId | string |
是 | 加入的房间 ID。 房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围: 1. 26 个大写字母 A ~ Z 。 2. 26 个小写字母 a ~ z 。 3. 10 个数字 0 ~ 9 。 4. 下划线 "_",at 符 "@",减号 "-"。 |
|
| userInfo | UserInfo |
是 | 用户信息。 | |
| roomConfig | RoomConfig |
是 | 房间参数配置,设置房间模式以及是否自动发布或订阅流。 |
返回值
类型: Promise<void>
注意
REPEAT_JOIN 错误。
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
() => void
注意
销毁 createEngine 所创建引擎实例,并释放所有相关资源。
() => void
注意
+ 请确保和需要销毁的 RTCEngine#RTCEngine 实例相关的业务场景全部结束后,才调用此方法 <br>
+ 该方法在调用之后,会销毁所有和此 RTCEngine#RTCEngine 实例相关的内存,并且停止与媒体服务器的任何交互 <br>
+ 本方法为阻塞调用,会阻塞当前线程直到 SDK 彻底完成退出逻辑,因而需要注意不要在回调线程中直接调用本方法,也需要注意不要在回调方法中等待主线程的执行,而同时在主线程调用本方法,从而造成死锁 <br>
在当前所在房间内手动开始发布本地音视频流
() => Promise<void>
返回值
类型: Promise<void>
注意
在当前所在房间内停止发布本地音视频流。
() => Promise<void>
返回值
类型: Promise<void>
注意
订阅房间内指定的远端音视频流。
无论自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。
该方法也可用于更新已经订阅的流的属性、媒体类型等配置。
(userId: string, mediaType: SubscribeMediaType, streamType?: StreamIndex, configure?: SubscribeVideoConfig) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| userId | string |
是 | 指定订阅的远端发布音视频流的用户 ID。 | |
| mediaType | SubscribeMediaType |
是 | 媒体类型,用于指定订阅音/视频 | |
| streamType | StreamIndex |
否 | 流属性,用于指定订阅主流/屏幕流 | |
| configure | SubscribeVideoConfig |
否 | 视频订阅配置 |
返回值
类型: Promise<void>
注意
停止订阅指定的房间内远端音视频流。
无论自动订阅还是手动订阅模式,你都可以调用此方法取消已订阅的音视频流。
(userId: string, isScreen: boolean) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| userId | string |
是 | 指定需要取消订阅的远端音视频流的所属的用户的 ID 。 | |
| isScreen | boolean |
是 | 是否为屏幕共享流。 |
返回值
类型: Promise<void>
注意
无论是否订阅了指定的远端音视频流,都可以调用此方法。userId 无效或未订阅时,SDK 不会做任何处理,没有负面影响。
更新 Token。
用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。
(token: string) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| token | string |
是 | 获取的新的有效 Token。 |
注意
INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
切换内部采集时使用的麦克风
(deviceId: string) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| deviceId | string |
是 | 设备 ID,你可以通过调用 getDevices#getdevices 获取。 |
返回值
类型: Promise<void>
注意
如果你正在使用麦克风进行音频采集,切换操作当即生效;如果麦克风未启动,后续开启内部采集时,会打开设定的麦克风。
切换内部采集时使用的摄像头
默认摄像头由浏览器指定。
(deviceId: string) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| deviceId | string |
是 | 设备 ID,你可以通过调用 getDevices#getdevices 获取。 |
返回值
类型: Promise<void>
注意
如果你正在使用相机进行视频采集,切换操作当即生效;如果相机未启动,后续开启内部采集时,会打开设定的摄像头。
立即开启内部视频采集。默认为关闭状态。
内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
发布流后调用该方法,房间中的其他用户会收到 [EngineEventsTypes.onUserStartVideoCapture] 的回调。
(deviceId?: string) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| deviceId | string |
否 | 设备 ID,你可以通过调用 getDevices#getdevices 获取。 |
返回值
类型: Promise<void>
注意
关闭内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
发布流后调用该方法,房间中的其他用户会收到 [EngineEventsTypes.onUserStopVideoCapture] 的回调。
() => Promise<void>
返回值
类型: Promise<void>
注意
立即开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
发布流后调用该方法,房间中的其他用户会收到 [EngineEventsTypes.onUserStartAudioCapture] 的回调。
(deviceId?: string) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| deviceId | string |
否 | 设备 ID,你可以通过调用 getDevices#getdevices 获取。 |
返回值
类型: Promise<void>
注意
立即关闭内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法,本地用户会收到 [EngineEventsTypes.onUserStopAudioCapture] 的回调。
() => Promise<void>
返回值
类型: Promise<void>
注意
使用内部采集模块,采集当前屏幕视频流,用于共享。
(screenConfig?: ScreenConfig) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| screenConfig | ScreenConfig |
否 | 共享屏幕属性 |
返回值
类型: Promise<void>
注意
停止屏幕共享流内部采集。
() => Promise<void>
返回值
类型: Promise<void>
注意
调用该接口后远端会收到 [EngineEventsTypes.onStreamRemove] 事件
发布本地屏幕共享流。
() => Promise<void>
返回值
类型: Promise<void>
注意
停止发布本地屏幕共享流。
() => Promise<void>
返回值
类型: Promise<void>
注意
设置本地视频渲染时,使用的视图,并设置渲染模式。
调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
(streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| streamIndex | StreamIndex |
是 | 视频流属性 | |
| videoPlayerOption | VideoPlayerOption |
是 | 视图信息和渲染模式 |
注意
你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
设置远端视频渲染时,使用的视图,并设置渲染模式。
建议在收到 onVideoFirstFrameRendered 事件后,调用本方法对远端视频视图进行设置。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
(streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| streamIndex | StreamIndex |
是 | 视频流属性 | |
| videoPlayer | VideoPlayerOption |
是 | 视图信息和渲染模式 |
注意
你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
是否开启本地视频流镜像模式。
(mirrorType: MirrorType) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| mirrorType | MirrorType |
是 | 是否开启镜像模式 |
设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。
(deviceId: string) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| deviceId | string |
是 | 音频播放设备(扬声器或者耳机),你可以通过调用 getDevices#getDevices |
返回值
类型: Promise<void>
注意
进房前和进房后,均可调用此方法设置音频播放设备。
手动开启音视频流播放
进房时未开启自动播放或自动播放失败时,可以调用本方法手动开启音视频流播放。
(userId: string) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| userId | string |
是 |
返回值
类型: Promise<void>
控制本地音频流的发送状态:发送/不发送。
非隐身用户使用此方法后,房间中的其他用户会收到回调 [EngineEventsTypes.onUserMuteAudio]。
(muteState: MuteState) => Promise<boolean>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| muteState | MuteState |
是 | 发送状态,标识是否发送本地音频流 |
返回值
类型: Promise<boolean>
注意
控制本地视频流的发送状态:发送/不发送。
无论你使用内部视频采集,还是自定义视频采集,你都应使用此接口启动发送本地视频流。
非隐身用户使用此方法后,房间中的其他用户会收到回调 [EngineEventsTypes.onUserMuteAudio]。
(muteState: MuteState) => Promise<boolean>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| muteState | MuteState |
是 | 发送状态,标识是否发送本地视频流 |
返回值
类型: Promise<boolean>
本地视频发送状态
注意
暂停接收来自远端的媒体流。
(mediaType: PauseResumeControlMediaType) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| mediaType | PauseResumeControlMediaType |
是 | 媒体流类型,指定需要暂停接收音频还是视频流 |
返回值
类型: Promise<void>
注意
恢复接收来自远端的媒体流
(mediaType: PauseResumeControlMediaType) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| mediaType | PauseResumeControlMediaType |
是 | 媒体流类型,指定需要暂停接收音频还是视频流 |
返回值
类型: Promise<void>
注意
给房间内指定的用户发送点对点文本消息。
若消息发送成功,则 userId 所指定的用户会收到 [EngineEventsTypes.onUserMessageReceived] 回调。
(userId: string, message: string) => Promise<unknown> | undefined
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| userId | string |
是 | 消息接收用户的 ID | |
| message | string |
是 | 发送的文本消息内容 消息不超过 62KB。 |
返回值
类型: Promise<unknown> | undefined
注意
在发送房间内文本消息前,必须先调用 joinRoom 加入房间。
给房间内指定的用户发送点对点二进制消息。
若消息发送成功,则 userId 所指定的用户会收到 [EngineEventsTypes.onUserBinaryMessageReceived] 回调。
(userId: string, message: ArrayBuffer) => Promise<unknown>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| userId | string |
是 | 消息接收用户的 ID | |
| message | ArrayBuffer |
是 | 发送的二进制消息内容 消息不超过 62KB。 |
返回值
类型: Promise<unknown>
注意
在发送房间内二进制消息前,必须先调用 joinRoom 加入房间。
给房间内的所有其他用户群发文本消息。
若消息发送成功,同一房间内的其他用户会收到 [EngineEventsTypes.onRoomMessageReceived] 回调。
(message: string) => Promise<any> | undefined
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| message | string |
是 | 发送的文本消息内容 消息不超过 62KB。 |
返回值
类型: Promise<any> | undefined
给房间内的所有其他用户群发二进制消息。
若消息发送成功,同一房间内的其他用户会收到通过 [EngineEventsTypes.onRoomBinaryMessageReceived] 回调发送的消息
(message: ArrayBuffer) => Promise<any> | undefined
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| message | ArrayBuffer |
是 | 发送的文本消息,不超过 62KB。 |
返回值
类型: Promise<any> | undefined
在视频通信时,通过视频帧发送 SEI 数据。
(streamIndex: StreamIndex, message: Uint8Array | string, repeatCount: number) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| streamIndex | StreamIndex |
是 | 指定携带 SEI 信息的媒体流类型 | |
| message | string \| Uint8Array |
是 | SEI 消息,不大于 4 kb。当消息为空或大小超限,终止发送,并收到相应的错误提示。 | |
| repeatCount | number |
是 | 消息发送重复次数。取值范围是 [0, 30]。调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。 |
注意
启动推送多路视频流,设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
(streamIndex: StreamIndex, descriptions: VideoStreamDescription[]) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| streamIndex | StreamIndex |
是 | ||
| descriptions | VideoStreamDescription[] |
是 | 要推送的多路视频流参数 最多支持 3 路参数。当设置了多路参数时,分辨率必须是从大到小排列。 最大分辨率为 4096px * 4096px,超过或设置的分辨率无法编码时,会导致编码推流失败。 |
返回值
类型: Promise<void>
注意
开启/关闭音量提示。默认关闭。
开启音量提示后,将按设置的时间间隔,收到本地采集音量或订阅的远端用户的音量信息回调。
关于回调的具体信息,参看 [EngineEventsTypes.onAudioVolumeIndication]。
(interval?: number) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| interval | number |
否 | 收到音量提示回调的时间间隔 建议设置为大于等于 200 毫秒;小于 10 毫秒时,行为未定义。 + ≤ 0:禁用音量提示功能。 + > 0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。 |
开启转推直播,并设置合流的视频视图布局和音频属性。
(transcode: LiveTranscodeConfig) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| transcode | LiveTranscodeConfig |
是 | 转推直播配置参数 |
返回值
类型: Promise<void>
{Promise
注意
更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
(transcode: Partial<LiveTranscodeConfig>) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| transcode | Partial<LiveTranscodeConfig> |
是 |
返回值
类型: Promise<void>
停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。
() => Promise<void>
返回值
类型: Promise<void>
设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
(businessId: string) => void
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| businessId | string |
是 | businessId 只是一个标签,颗粒度需要用户自定义。 |
注意
需要在调用 joinRoom 之前调用,joinRoom 之后调用该方法无效。
设置用户可见性。默认可见。
(enable: boolean) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| enable | boolean |
是 | 用户是否对房间内其他用户可见: + true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。 + false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。 |
返回值
类型: Promise<void>
注意
false 切换至 true 时,房间内其他用户会收到 [EngineEventsTypes.onUserJoined] 回调通知; true 切换至 false 时,房间内其他用户会收到 [engineeventstypes.onUserLeave] 回调通知。
使用用户自定义的 videoTrack
请确保在你调用本方法前已调用 setVideoSourceType 设置为自定义视频采集。
(index: StreamIndex, track: MediaStreamTrack) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| index | StreamIndex |
是 | 视频指针 | |
| track | MediaStreamTrack |
是 | 自定义的 videoTrack |
返回值
类型: Promise<void>
使用用户自定义的 audioTrack
使用自定义的 audioTrack 之后, 再开启摄像头,或者切换摄像头时。SDK 会采集新的视频流替换自定义的 audioTrack
(index: StreamIndex, track: MediaStreamTrack) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| index | StreamIndex |
是 | 音频流指针 | |
| track | MediaStreamTrack |
是 | 自定义的 audioTrack |
返回值
类型: Promise<void>
设置向 SDK 输入的视频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
该方法进房前后均可调用。
当你已调用 startVideoCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集后,想要切换至内部采集,你必须先调用此方法关闭自定义采集,然后调用 startVideoCapture 手动开启内部采集
(index: StreamIndex, videoSourceType: VideoSourceType) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| index | StreamIndex |
是 | 视频流指针 | |
| videoSourceType | VideoSourceType |
是 | 视频采集模块 |
返回值
类型: Promise<void>
设置向 SDK 输入的音频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的音频采集机制进行音频采集。
该方法进房前后均可调用。
当你已调用 startAudioCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集后,想要切换至内部采集,你必须先调用此方法关闭自定义采集,然后调用 startAudioCapture 手动开启内部采集
(index: StreamIndex, audioSourceType: AudioSourceType) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| index | StreamIndex |
是 | 音频流指针 | |
| audioSourceType | AudioSourceType |
是 | 音频采集模块 |
返回值
类型: Promise<void>
混音管理接口创建
() => IAudioMixingManager
返回值
类型: IAudioMixingManager
混音管理对象
设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。
(config: TrackCaptureConfig) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| config | TrackCaptureConfig |
是 | 音频采集参数。例如,关闭浏览器音频 3A |
返回值
类型: Promise<void>
设置 RTC SDK 内部采集时的视频采集参数。默认参数由浏览器决定。
(config: TrackCaptureConfig) => Promise<void>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| config | TrackCaptureConfig |
是 | 视频采集参数 |
返回值
类型: Promise<void>
| 名称 | 类型 | 描述 |
|---|---|---|
| enableDevices | (options?: { video: boolean; audio: boolean;}) => Promise<{ video: boolean; audio: boolean;}> |
向用户获取设备权限 |
| getMicrophones | () => Promise<RTCDevice[]> |
该方法枚举可用的麦克风。 可以通过该方法获取设备的 deviceId, 可用于 startAudioCapture 方法中指定采集/播放设备。 |
| getCameras | () => Promise<RTCDevice[]> |
该方法枚举可用的摄像头等。 可以通过该方法获取设备的 deviceId, 可用于 startVideoCapture 方法中指定采集/播放设备。 |
| getAudioPlayback | () => Promise<RTCDevice[]> |
该方法枚举可用的音频输出设备,例如耳机、音箱等。 可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice 方法中指定采集/播放设备。 |
| isSupported | () => boolean |
浏览器是否支持 |
| createEngine | (appId: string) => IRTCEngine |
创建引擎对象 你必须先使用此方法,以使用 RTC 提供的各种音视频能力。 再次调用此方法时,会创建另一个独立的引擎实例。 |
| destroyEngine | (engine: IRTCEngine) => void |
手动销毁通过 createEngine 所创建的引擎对象。 |
| getSdkVersion | () => string |
获取 SDK 当前的版本号。 |
| getDevices | () => Promise<RTCDevice[]> |
该方法枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。 可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice, startVideoCapture, startAudioCapture 方法中指定采集/播放设备。 |
向用户获取设备权限
(options?: { video: boolean; audio: boolean;}) => Promise<{ video: boolean; audio: boolean;}>
参数
| 名称 | 类型 | 必选 | 默认值 | 描述 |
|---|---|---|---|---|
| options | { video: boolean; audio: boolean; } |
否 | 需要获取权限的设备类型video: boolean 视频设备audio:boolean 音频设备 |
返回值
类型: Promise<{ video: boolean; audio: boolean; }>
() => Promise<RTCDevice[]>
**返回值**
类型: `Promise`
所有的麦克风设备列表,详见 RTCDevice。
### getCameras
() => Promise<RTCDevice[]>
**返回值**
类型: `Promise`
所有的摄像头设备列表,详见 RTCDevice。
### getAudioPlayback
() => Promise<RTCDevice[]>
**返回值**
类型: `Promise`
所有的设备列表,详见 RTCDevice。
### isSupported
() => boolean
**返回值**
类型: `boolean`
+ `True`: 支持
+ `False`:不支持
### createEngine
(appId: string) => IRTCEngine
**参数**
| 名称 | 类型 | 必选 | 默认值 | 描述 |
| -- | -- | -- | -- | -- |
| appId | `string` | 是 | | (engine: IRTCEngine) => void
**参数**
| 名称 | 类型 | 必选 | 默认值 | 描述 |
| -- | -- | -- | -- | -- |
| engine | [`IRTCEngine`](#irtcengine) | 是 | | |
**注意**
+ 请确保与需要销毁的相关的业务场景全部结束后,才调用此方法 () => string
**返回值**
类型: `string`
SDK 当前的版本号
### getDevices
() => Promise<RTCDevice[]>
**返回值**
类型: `Promise`
媒体设备列表,详见 RTCDevice。